Modular specification of frame properties in JML

نویسندگان

  • Peter Müller
  • Arnd Poetzsch-Heffter
  • Gary T. Leavens
چکیده

ion. The only restriction is that the field names of the dependees must be specified in the depends clauses. 5.1.2.2. Locality Rule. The locality rule is fairly natural: Usually, abstractions of dynamic components abstract from the states of their interface and representation objects. As long as these objects are reachable from an interface object via read-write references, such abstractions meet the locality requirement. Objects that are only reachable via readonly references can be seen as arguments of a dynamic component (e.g., the elements in a container). It seems widely accepted that abstractions of a dynamic component must not depend on the states of its arguments (see e.g., the arg mode in [5]). 5.1.2.3. Authenticity. Of all modularity requirements, authenticity entails the most onerous restrictions: (1) Authenticity forces programmers to use rep types whenever a type declaration declares a dependency where the field of the dependee is declared in an imported module. In such situations, all restrictions of the universe type system (see above) apply. (2) Because of authenticity, it is not possible for a location L declared in class C to depend on a location K of the same object if K’s declaration is inherited by C and contained in a different module. Otherwise, K and L would belong to the same context, but L’s declaration was not visible for the declaration of K. Therefore, authenticity does not fully support inheritance. This problem occurs also in different approaches [17] and is not solved yet. In many class libraries, such as the Java API, superand subclass are often declared in what would be the same module in our technique, and could be handled by our technique; but this would not help users of such a framework to make subclasses outside these modules. However, we need to refine our module system to deal with Java’s package concept before this can be studied in detail.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Extending JML for Modular Specification and Verification of Multi-threaded Programs

The Java Modeling Language (JML) is a formal specification language for Java that allows developers to specify rich software contracts for interfaces and classes, using preand postconditions and invariants. Although JML has been widely studied and has robust tool support based on a variety of automated verification technologies, it shares a problem with many similar object-oriented specificatio...

متن کامل

An Aspect-oriented Approach to Modular Behavioral Specification of Java Components

Behavioral interface specification languages, such as Java Modeling Language (JML), can be used to specify the behavior of program modules. We have developed a behavioral interface specification language Moxa, an extension of JML. Moxa provides the new modularization mechanism called assertion aspect that can capture the crosscutting properties among assertions. In this paper, we briefly explai...

متن کامل

Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2

Many state-based specification languages, including the Java Modeling Language (JML), contain at their core specification constructs familiar to most undergraduates: e.g., assertions, preand postconditions, and invariants. Unfortunately, these constructs are not sufficiently expressive to permit formal modular verification of programs written in modern object-oriented languages like Java. The n...

متن کامل

Preliminary Design of JML: A Behavioral Interface Specification

JML is a behavioral interface specification language tailored to Java. It also allows assertions to be intermixed with Java code, as an aid to verification and debugging. JML is designed to be used by working software engineers, and requires only modest mathematical training. To achieve this goal, JML uses Eiffel-style assertion syntax combined with the model-based approach to specifications ty...

متن کامل

Non-interference in JML

This paper deals with the specification of non-interference properties in the behavioral specification language JML. The notion of a specification pattern for JML is introduced and it is shown how such patterns can be used to specify non-interference properties such as confidentiality and integrity. The main contribution of this paper is an algorithm that takes a Java source file as input and g...

متن کامل

JML's Rich, Inherited Specifications for Behavioral Subtypes

The Java Modeling Language (JML) is used to specify detailed designs for Java classes and interfaces. It has a particularly rich set of features for specifying methods. This paper describes those features, with particular emphasis on the features related to specification inheritance. It shows how specification inheritance in JML forces behavioral subtyping, through a discussion of semantics and...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Concurrency and Computation: Practice and Experience

دوره 15  شماره 

صفحات  -

تاریخ انتشار 2003